package us.gaaoc.framework.dao;

import java.util.List;

import us.gaaoc.framework.businessmodel.FilingPerson;
import us.gaaoc.framework.model.CaseRecord;
import us.gaaoc.framework.model.ParticipantRelationship;
import us.gaaoc.framework.model.Person;
import us.gaaoc.framework.model.PersonParticipants;

public interface PersonParticipantsDAO extends GenericDAO<PersonParticipants, String>{

	/**
	 * @param caseRecord
	 * @return
	 */
	public abstract List<PersonParticipants> getPersonParicipant(CaseRecord caseRecord);

	/**
	 * @param record
	 */
	public abstract void deletePersonParticipants(PersonParticipants pp);

	/**
	 * @param personParticipant
	 * @return
	 */
	public abstract List<CaseRecord> findCaseRecordsByPerson(Person personParticipant);

	public abstract List<FilingPerson> findFilerandDefendant(CaseRecord cr);
	
	public abstract List<FilingPerson> findFilerandDefendantByCaseRecordUuid(String caseRecordUuid);
	
	/**
	 * get the participant(s) in a case
	 * @param caseRecord
	 * @return list of participants
	 */
	public abstract List<PersonParticipants> getPersonParticipantByParticipantRelationshipCode(CaseRecord caseRecord, int participantRelationshipCode);

	public abstract List<ParticipantRelationship> getAllParticipantRelationshipCodes();

	public abstract List<PersonParticipants> getPersonParticipantByPerson(
			Person personParticipant);
	
	
	

}
